package com.lqwu.mallchatserver.user.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.lqwu.mallchatserver.user.model.dto.ItemInfoDTO;
import com.lqwu.mallchatserver.user.model.dto.ItemInfoReq;
import com.lqwu.mallchatserver.user.model.dto.SummeryInfoDTO;
import com.lqwu.mallchatserver.user.model.dto.SummeryInfoReq;
import com.lqwu.mallchatserver.user.model.entry.User;
import com.lqwu.mallchatserver.user.model.vo.BadgeResp;
import com.lqwu.mallchatserver.user.model.vo.UserInfoResp;

import javax.validation.Valid;
import java.util.List;

/**
* @author 伍立权
* @description 针对表【user(用户表)】的数据库操作Service
* @createDate 2025-05-25 17:38:24
*/
public interface UserService extends IService<User> {
    /**
     * 注册
     * @param registeredUser
     */
    Long register(User registeredUser);

    /**
     * 获取用户信息
     * @param uid
     * @return
     */
    UserInfoResp getUserInfo(Long uid);

    /**
     * 修改用户昵称
     * @param uid
     * @param name
     */
    void modifyName(Long uid, String name) throws InterruptedException;

    /**
     * 用户徽章列表
     * @param uid
     * @return
     */
    List<BadgeResp> badges(Long uid);

    /**
     * 佩戴徽章
     *
     * @param itemId
     * @param uid
     */
    void wearingBadge(Long itemId, Long uid);

    /**
     * 拉黑
     * @param uid
     */
    void black(Long uid);

    /**
     * 获取好友列表
     * @param uids
     * @return
     */
    List<User> getFriendList(List<Long> uids);

    /**
     * 获取用户聚合信息
     * @param req
     * @return
     */
    List<SummeryInfoDTO> getSummeryUserInfo(@Valid SummeryInfoReq req);

    /**
     * 获取徽章聚合信息
     * @param req
     * @return
     */
    List<ItemInfoDTO> getItemInfo(@Valid ItemInfoReq req);

    /**
     * 获取全员群成员列表（前1000未）
     * @return
     */
    List<User> getMemberList();
}
